Various data processing systems have been developed for use in applications such as storage systems, cellular telephone systems, and radio transmission systems. In each of the systems data is transferred from a sender to a receiver via some medium. For example, in a storage system, data is sent from a sender (i.e., a write function) to a receiver (i.e., a read function) via a storage medium. As information is stored and transmitted in the form of digital data, errors are introduced that, if not corrected, can corrupt the data and render the information unusable. The effectiveness of any transfer is impacted by any losses in data caused by various factors. Many types of data processors have been developed to detect and correct errors in digital data. For example, data detectors and decoders such as Maximum a Posteriori (MAP) detectors and Low Density Parity Check (LDPC) decoder may be used to detect and decode the values of data bits or multi-bit symbols retrieved from storage or transmission systems.
Sectors of data from storage systems or other blocks of data may vary in the signal to noise ratio (SNR) and thus in the difficulty of recovering the original data after storage or transmission. As data is retrieved or received sequentially, a memory buffer may be provided in a data processing system to store data being processed. However, as processing is completed, the data is kicked out of the memory buffer to make room for new data to be processed. If the data is not successfully processed in the data processing system before the data is kicked out of the memory buffer, the data may be retrieved or received again to repeat the processing in the hope that the processing will be successful the next time.